home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / DBVGAL17.ARJ / SRC_ASM.ARJ / VMO.ASM < prev    next >
Assembly Source File  |  1992-01-25  |  1KB  |  58 lines

  1. ; Miscellaneous Output register
  2. ;
  3. ; unsigned char MOread_reg(void);
  4. ; void MOset_reg(unsigned char value);
  5. ; void MOset_regm(unsigned char value, unsigned char mask);
  6. ;      reg= (!mask & reg) | (mask & value)
  7. BMASK   EQU     [BP+8]
  8. VALUE   EQU     [BP+6]
  9. ;
  10. MOread  EQU     03CCh
  11. MOwrite EQU     03C2h
  12. ;
  13. MO_TEXT   SEGMENT byte public 'CODE'
  14.         ASSUME  cs:MO_TEXT, ds:NOTHING
  15.         PUBLIC  _MOread_reg
  16.         PUBLIC  _MOset_reg
  17.         PUBLIC  _MOset_regm
  18. _MOread_reg     PROC    far
  19.         mov     dx,MOread
  20.         in      al,dx
  21.         xor     ah,ah
  22.         ret             ; return to C
  23. _MOread_reg     ENDP
  24. _MOset_reg      PROC    far
  25.         push    bp
  26.         mov     bp,sp
  27.         mov     dx,MOwrite
  28.         mov     al,VALUE
  29.         out     dx,al
  30.         xor     ax,ax
  31.         pop     bp
  32.         ret             ; return to C
  33. _MOset_reg      ENDP
  34. _MOset_regm     PROC    far
  35.         push    bp
  36.         mov     bp,sp
  37.  
  38.         mov     dx,MOread
  39.         in      al,dx
  40.         mov     bl,BMASK
  41.         not     bl
  42.         and     al,bl
  43.         mov     cl,al
  44.         mov     dx,MOwrite
  45.         mov     al,VALUE
  46.         mov     bl,BMASK
  47.         and     al,bl
  48.         or      al,cl
  49.         out     dx,al   
  50.  
  51.         xor     ax,ax
  52.         pop     bp
  53.         ret             ; return to C
  54. _MOset_regm     ENDP
  55. MO_TEXT   ENDS
  56.         END
  57.  
  58.